#ifndef RSIM_DCAASSEMBLY3D_H
#define RSIM_DCAASSEMBLY3D_H

/*-------------------------------------------------------------------------- *
* File: DCAAssembly3D.h                                                      *
* Authors: Kishor Bhalerao                                                   *
* Email : kishor8dm@gmail.com                                                *
* Contributors:                                                              *
* Email:                                                                     *
* copyright (c) 2010 Authors.                                                *
*                                                                            *
* This program is free software: you can redistribute it and/or modify it    *
* under the terms of the GNU General Public License as published by the Free *
* Software Foundation, either version 3 of the License, or any later version.*
*                                                                            *
* This program is distributed in the hope that it will be useful, but        *
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY *
* or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License   *
* for more details. (http://www.gnu.org/licenses/)                           *
* -------------------------------------------------------------------------- */

#include "LinAlgDecl.h"
#include "DCAData3D.h"

namespace RSIM{
        
class DCAAssembly3D{
        public:
                // Parent body of the assembly
                int parentid_;                
                // Child body  of the assembly
                int childid_;                
                // This assembly id
                int asmid_;                
                int parentasmid_;                
                int childasmid_;                
                // Udot id associated with the common joint
                int udotid_;                
                
                DCAData3D dca_;
                                
                Mat6x6 Wa_;
                Mat6x6 Wb_;
                Vect6 Wc_;
                
                void displayAssemblyIds(){
                        cout<<"Parent Body ID = "<<parentid_<<", Child Body ID = "<<childid_<<
                        ", udot ID = "<<udotid_<<", Parent Asm = "<<parentasmid_<<", Child Asm = "<<childasmid_<<endl;
                }
                
                DCAAssembly3D(){                     
                }
                
        private:                                
                DCAAssembly3D(const DCAAssembly3D&);
                                                
}; // class DCAAssembly3D

} // namespace RSIM

#endif